perm filename WEAVE.UPD[WEB,ALS] blob sn#672770 filedate 1982-08-17 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00012 00002	This file is slightly newer than the latest hardcopy of WEAVE.WEB (which
C00022 ENDMK
C⊗;
This file is slightly newer than the latest hardcopy of WEAVE.WEB (which
was handed out at the Summer 82 TUG meeting at Stanford).  Here is a list
of the changes from that document, followed by the new WEB source itself.


**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-39 (1970)
  \ctrline{(Version 0.97, July 1982)}
**** FILE PS:<4SCRATCH>W.W.1, 1-39 (1970)
  \ctrline{(Version 0.98, July 1982)}
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-1251 (50938)
begin restart:
**** FILE PS:<4SCRATCH>W.W.1, 1-1251 (50938)
begin restart: incr(line);
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-1285 (52218)
begin open←input; line:=1; changing:=false; prime←the←change←buffer;
**** FILE PS:<4SCRATCH>W.W.1, 1-1285 (52230)
begin open←input; line:=0; changing:=false; prime←the←change←buffer;
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-1297 (52684)
begin incr(line);
if changing then @<Either continue to read from |change←file|
**** FILE PS:<4SCRATCH>W.W.1, 1-1297 (52696)
begin if changing then @<Either continue to read from |change←file|
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-1305 (52957)
begin if not input←ln(web←file) then input←has←ended:=true
**** FILE PS:<4SCRATCH>W.W.1, 1-1304 (52956)
begin incr(line);
if not input←ln(web←file) then input←has←ended:=true
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-1314 (53315)
**** FILE PS:<4SCRATCH>W.W.1, 1-1314 (53327)
incr(line);
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-1332 (53863)
loop  begin loc:=0; incr(line);
**** FILE PS:<4SCRATCH>W.W.1, 1-1333 (53888)
loop@+  begin loc:=0; incr(line);
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-1346 (54324)
loop  begin if buffer[loc]="@@" then
**** FILE PS:<4SCRATCH>W.W.1, 1-1347 (54351)
loop@+  begin if buffer[loc]="@@" then
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-2800 (114175)
not do something to split the cases into two parts. Therefore
**** FILE PS:<4SCRATCH>W.W.1, 1-2801 (114204)
not do something to split the cases into parts. Therefore
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-2804 (114397)
that |translate| would have otherwise had.
@<Match a production at |pp|, or increase |pp| if there is no match@>=
if cat[pp]<alpha then five←cases
else  begin case cat[pp] of
  alpha: @<Cases for |alpha|@>;
**** FILE PS:<4SCRATCH>W.W.1, 1-2805 (114422)
that |translate| would otherwise have had. There's also a procedure
called |alpha←cases|, which turned out to be necessary because the best
two-way split wasn't good enough. The procedure could be split further
in an analogous manner, but the present scheme works on all compilers
known to the author.
@<Match a production at |pp|, or increase |pp| if there is no match@>=
if cat[pp]<=alpha then
  if cat[pp]<alpha then five←cases@+else alpha←cases
else  begin case cat[pp] of
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-2828 (115189)
@ Here is the procedure that needs to be present for the reason just
explained.
@<Declaration of the |five←cases| procedure@>=
procedure five←cases; {a subprocedure of |translate|}
**** FILE PS:<4SCRATCH>W.W.1, 1-2833 (115488)
@ Here are the procedures that need to be present for the reason just
explained.
@<Declaration of subprocedures for |translate|@>=
procedure five←cases; {handles almost half of the syntax}
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-2845 (115678)
**** FILE PS:<4SCRATCH>W.W.1, 1-2849 (115983)
@#
procedure alpha←cases;
label found;
begin @<Cases for |alpha|@>;
incr(pp); {if no match was found, we move to the right}
found: end;
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-3193 (127212)
@p @<Declaration of the |five←cases| procedure@>@;
**** FILE PS:<4SCRATCH>W.W.1, 1-3204 (127661)
@p @<Declaration of subprocedures for |translate|@>@;
***************

**** FILE PS:<TEX.WEB>WEAVE.WEB.1, 1-4516 (176189)
print←ln('This is WEAVE, Version 0.97'); {print a ``banner line''}
**** FILE PS:<4SCRATCH>W.W.1, 1-4527 (176641)
print←ln('This is WEAVE, Version 0.98'); {print a ``banner line''}
***************